#ifndef ANIMATION_H
#define ANIMATION_H

#include "Texture.h"
#include <vector>

/*!
 *  \class Animation
 *  \brief Représente une animation décomposé en plusieurs textures
 */

class Animation
{
    public:

    /************************/
    /*      Propriétés      */
    /************************/

    std::vector<Texture * > textures;   /*!<    Tableau enregistrant les images correspondant aux différentes étape de l'animation */

    int stepLength;     /*!<    Nombre de rafraichissement de l'image avant de changer d'étape d'animation */
    int currentStep;    /*!<    Indice permettant de savoir à quelle texture du tableau de texture nous en sommes   */

    int stepCount;      /*!<    Compte le nombre de frame qui se sont écoulé depuis le dernier changement d'image   */

    /****************************/
    /*      Constructeurs       */
    /****************************/

    /*!
     *      \fn Animation
     *      \brief Construit une animation à l'aide d'un ensemble de texture, servant à représenter les différentes étapes
     *      d'animations de cette derniere, et temps, en frame, qui doit s'écouler entre chacune des étapes d'animations
     */
    Animation(std::vector<Texture *>, int nStep);

    /************************/
    /*      Méthodes        */
    /************************/

    /*!
     *  \fn Use()
     *  \brief  Méthode utilisé pour "plaquer" la texture correspondant à l'étape i de l'animation
     */

    void Use();
};

#endif // ANIMATION_H
